As computer networks, the Internet, and distributed computing have developed, members of project teams have become increasingly able to work from different physical locations. Tools such as electronic mail, notes conferences, the world wide web (WWW) and remote file transfer provide a first level of communication between team members. At times, however, there is required the ability to enable multiple team members at differing physical locations to simultaneously view and/or interact with any computer program or set of data. All participating team members must be able to provide inputs, and see the results of their own and other team members' inputs in real time. Such functionality is provided in general by software products referred to as "collaborative tools".
Existing collaborative tools often employ a protocol level splitting approach in which windowing protocol messages are captured at each client system and sent to a server system. Such existing systems have significant shortcomings. Specifically, in existing collaboration tools, only a single application program may be shared at one time. Existing collaborative tools also only permit sharing of two dimensional graphics applications between users having two dimensional graphics display devices. Accordingly, existing collaborative tools are incapable of conveniently sharing two and three dimensional graphics applications between users on both two and three dimensional graphics display devices. In addition, existing collaborative tools do not permit sharing of any partial displays of shared applications. Instead, existing systems require a single shared application to be completely displayed to each client.
Moreover, where a collaborative tool is made available, its potential users may not all be working from exactly the same hardware or software display technology. Different display technology may use different formats of pixels. For example, different users may have pixel formats which use different numbers of bits for color information, and which use the color information in each pixel in different ways. Accordingly any new collaborative tool which shares information based on pixels must provide some way to resolve the differences between the pixel formats used on diverse systems.
Thus, it is desirable to have a collaborative tool which allows multiple users on systems using differing pixel formats to share information across a network. Such a new system should advantageously permit multiple application programs to be shared simultaneously, and allow two and three dimensional graphics information to be shared with users on both two and three dimensional display devices, and enable team members to share partial displays of application windows.